<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Lke\V20231130\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeTokenUsage response structure.
 *
 * @method float getTotalTokenUsage() Obtain Total token consumption.
 * @method void setTotalTokenUsage(float $TotalTokenUsage) Set Total token consumption.
 * @method float getInputTokenUsage() Obtain Input token consumption.
 * @method void setInputTokenUsage(float $InputTokenUsage) Set Input token consumption.
 * @method float getOutputTokenUsage() Obtain Output token consumption.
 * @method void setOutputTokenUsage(float $OutputTokenUsage) Set Output token consumption.
 * @method integer getApiCallStats() Obtain Number of API calls.
 * @method void setApiCallStats(integer $ApiCallStats) Set Number of API calls.
 * @method float getSearchUsage() Obtain Number of search service calls.
 * @method void setSearchUsage(float $SearchUsage) Set Number of search service calls.
 * @method integer getPageUsage() Obtain Number of pages consumed by document parsing.
 * @method void setPageUsage(integer $PageUsage) Set Number of pages consumed by document parsing.
 * @method float getSplitTokenUsage() Obtain Token consumption by splitting.
 * @method void setSplitTokenUsage(float $SplitTokenUsage) Set Token consumption by splitting.
 * @method float getRagSearchUsage() Obtain Number of Rag retrievals.
 * @method void setRagSearchUsage(float $RagSearchUsage) Set Number of Rag retrievals.
 * @method float getInternetSearchUsage() Obtain Number of online searches.
 * @method void setInternetSearchUsage(float $InternetSearchUsage) Set Number of online searches.
 * @method float getDosageTypeLimit() Obtain 
 * @method void setDosageTypeLimit(float $DosageTypeLimit) Set 
 * @method float getDosageTypeCurr() Obtain 
 * @method void setDosageTypeCurr(float $DosageTypeCurr) Set 
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeTokenUsageResponse extends AbstractModel
{
    /**
     * @var float Total token consumption.
     */
    public $TotalTokenUsage;

    /**
     * @var float Input token consumption.
     */
    public $InputTokenUsage;

    /**
     * @var float Output token consumption.
     */
    public $OutputTokenUsage;

    /**
     * @var integer Number of API calls.
     */
    public $ApiCallStats;

    /**
     * @var float Number of search service calls.
     */
    public $SearchUsage;

    /**
     * @var integer Number of pages consumed by document parsing.
     */
    public $PageUsage;

    /**
     * @var float Token consumption by splitting.
     */
    public $SplitTokenUsage;

    /**
     * @var float Number of Rag retrievals.
     */
    public $RagSearchUsage;

    /**
     * @var float Number of online searches.
     */
    public $InternetSearchUsage;

    /**
     * @var float 
     */
    public $DosageTypeLimit;

    /**
     * @var float 
     */
    public $DosageTypeCurr;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param float $TotalTokenUsage Total token consumption.
     * @param float $InputTokenUsage Input token consumption.
     * @param float $OutputTokenUsage Output token consumption.
     * @param integer $ApiCallStats Number of API calls.
     * @param float $SearchUsage Number of search service calls.
     * @param integer $PageUsage Number of pages consumed by document parsing.
     * @param float $SplitTokenUsage Token consumption by splitting.
     * @param float $RagSearchUsage Number of Rag retrievals.
     * @param float $InternetSearchUsage Number of online searches.
     * @param float $DosageTypeLimit 
     * @param float $DosageTypeCurr 
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("TotalTokenUsage",$param) and $param["TotalTokenUsage"] !== null) {
            $this->TotalTokenUsage = $param["TotalTokenUsage"];
        }

        if (array_key_exists("InputTokenUsage",$param) and $param["InputTokenUsage"] !== null) {
            $this->InputTokenUsage = $param["InputTokenUsage"];
        }

        if (array_key_exists("OutputTokenUsage",$param) and $param["OutputTokenUsage"] !== null) {
            $this->OutputTokenUsage = $param["OutputTokenUsage"];
        }

        if (array_key_exists("ApiCallStats",$param) and $param["ApiCallStats"] !== null) {
            $this->ApiCallStats = $param["ApiCallStats"];
        }

        if (array_key_exists("SearchUsage",$param) and $param["SearchUsage"] !== null) {
            $this->SearchUsage = $param["SearchUsage"];
        }

        if (array_key_exists("PageUsage",$param) and $param["PageUsage"] !== null) {
            $this->PageUsage = $param["PageUsage"];
        }

        if (array_key_exists("SplitTokenUsage",$param) and $param["SplitTokenUsage"] !== null) {
            $this->SplitTokenUsage = $param["SplitTokenUsage"];
        }

        if (array_key_exists("RagSearchUsage",$param) and $param["RagSearchUsage"] !== null) {
            $this->RagSearchUsage = $param["RagSearchUsage"];
        }

        if (array_key_exists("InternetSearchUsage",$param) and $param["InternetSearchUsage"] !== null) {
            $this->InternetSearchUsage = $param["InternetSearchUsage"];
        }

        if (array_key_exists("DosageTypeLimit",$param) and $param["DosageTypeLimit"] !== null) {
            $this->DosageTypeLimit = $param["DosageTypeLimit"];
        }

        if (array_key_exists("DosageTypeCurr",$param) and $param["DosageTypeCurr"] !== null) {
            $this->DosageTypeCurr = $param["DosageTypeCurr"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
